// function ReverseSentence(str)
// {
//     // write code here
//     // 初始的时候让i指向字符串的结尾 只要i大于等于0 
//     var i = str.length -1
//     // j 指向单词结尾
//     var j = 0
//     // 初始化结果数组 用来储存单词
//     var res = []
//     // 只要i 大于等于0 就执行以下操作
//     while(i >= 0){
//       // 如果倒着来 的字符 不等于 空格 说明 这个字符就是单词的结尾
//       if(str.charAt(i) !== ' '){
//         j = i
//         // 后续寻找这个单词的开头 必须写在这个里面 如果不写的话 j会改变
//         //  i>=0 保证i在这个字符串内 
//         while(i >= 0 && str.charAt(i) !== ' '){
//           i--
//         }
//         // 退出循环条件是 i=-1 或者是i的位置没有字符 说明在i+1 到j这些位置内是一个单词
//         // 将单词插入到结果列表中
//         // str.slice是截取字符串
//         // splice是对数组的操作方法 splice(1,2) 删除 splice(1,2,'a') 修改 splice(1,0,'a')添加 返回删除的内容
//         res.push(str.slice(i+1,j+1))
//       }
//       // 外层循环
//       i--
//     }
//     // 使用空格作为连接符 生成字符串
//     return res.join(' ')
// }
// module.exports = {
//     ReverseSentence : ReverseSentence
// };
function ReverseSentence(str)
{
    // write code here
    // 定义开始遍历字符串位置 从最后遍历
    var i = str.length-1
    // 定义字符串结尾位置
    var j = 0
    // 定义结果数组
    var res = []
    while(i >= 0){
      if(str.charAt(i) !== ' '){
        // 如果出现了不等于空格 说明了出现了字符
        j = i
        // 出现字符需要找到字符的开头
          // 退出的条件有两个 一个是 遍历完了 一个是 出现了空格 说明此时字符走到尽头
        while(i >= 0 && str.charAt(i) !== ' '){
          i--
        }
        // 退出的条件有两个 一个是 遍历完了 一个是 出现了空格 说明此时字符走到尽头
        // 遍历完了 会退出循环 此时单词前面是空格 所以从i+1开始算起 一直到j j+1 是因为splic 参数不能取到后置区间 是开区间
        res.push(str.slice(i+1,j+1))
      }
      i--
    }
    return res.join(' ')
}
module.exports = {
    ReverseSentence : ReverseSentence
};